﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Sharp.Compiler.CSharp
{
    /// <summary>
    /// Defines the syntax structure of C sharp
    /// </summary>
    class Syntax
    {
        /*
        * Syntax Rules:
        * 1. Textblock is either:
        *      - preProcessorDirective
        *      - whitespace
        *      - comment
        *      - a set of tokens
        *      - line terminator
        * 
        * 2. Tokens Syntax is either:
        *         - keyword(s) identifier lineTerminator
        *         - keyword(s) identifier operator literal/reference(with params) lineTerminator
        *        - identifier operator literal/reference(with params) lineTerminator
        */
        int a;

        /*
         * Check order:
         * LineTerminators
         * Comments (Gets striped out by the interpreter)
         * Whitespace (Helps to break up the text so it can find the find lexicons)
         * Punctuators (Helps to break up the text so it can find the find lexicons)
         * Pre-Processor Directives (Decides what code 
         *                          to ignore (strip out), 
         *                          to include (leave in), 
         *                          to not duplicate (same as ignore),
         *                          To send to the console(errors, warnings),
         *                          To change the line number)
         * Keywords
         * Identifiers
         * Operators
         * literals
         * references
         * 
         */
    }
}
